﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.OleDb;
using MySql.Data;
using MySql.Data.MySqlClient;


namespace SistemaPetShop.Negocio
{
    public class Fornecedor
    {

        MySqlDataReader retornoDataReader;
        OleDbDataReader retornoAccess;
        StringBuilder query = new StringBuilder();

        public StringBuilder Query
        {
            get { return query; }
            set { query = value; }
        }

        /*  -- Alterado 14/03/2012 - Dados de logradouro será pesquisado na base dos correios.
        // Realizando um consulta por quantidade de tipos de logradouros
        public int _QtLogradouro()
        { 
            Conexao c = new Conexao();
            c.AbrirConexao();
            int qtde = c.Consulta("SELECT count(*) FROM tipologradouro t;").FieldCount;
            return qtde;
        }

        // Realizando uma consulta por tipos de logradouros
        public DataTable _TLogradouro()
        {
            DataTable dt = new DataTable();
            Conexao c = new Conexao();
            c.AbrirConexao();
            retornoDataReader = c.Consulta("SELECT descricao FROM tipologradouro t;");
            dt.Load(retornoDataReader);
            c.FecharConexao();
            return dt;

        }
         */

        public DataTable _DadosFornecedor()
        {
            DataTable dt = new DataTable();
            Conexao c = new Conexao();
            //c.AbrirConexao();
            dt = c.Consulta("SELECT * FROM fornecedor f ORDER BY 2;");
            //dt.Load(retornoDataReader);
            //c.FecharConexao();
            return dt;
            
        }
        
        // Inseri um novo fornecedor
        public bool _InseriFornecedor(
            string razaoSocial,
            string tipoLogradouro,
            string logradouro,
            string numero,
            string bairro,
            string cidade,
            string estado,
            string cep,
            string telefone1,
            string telefone2,
            string telefone3,
            string interlocutor,
            string email,
            string site
            )
        {
            if (razaoSocial=="") {razaoSocial = null;}
            if (tipoLogradouro == "") {tipoLogradouro = null;}
            if (logradouro == "") { logradouro = null; }
            if (numero == "") { numero = null; }
            if (bairro == "") { bairro = null; }
            if (cidade == "") { cidade = null; }
            if (estado == "") { estado = null; }
            if (cep == "") { cep = null; }
            if (telefone1 == "") { telefone1 = null; }
            if (telefone2 == "") { telefone2 = null; }
            if (telefone3 == "") { telefone3 = null; }
            if (interlocutor == "") { interlocutor = null; }
            if (email == "") { email = null; }
            if (site == "") { site = null; }

            Conexao con = new Conexao();
            //con.AbrirConexao();
            query.Append("INSERT INTO fornecedor (razaoSocial,tipoLogradouro,logradouro,numero,bairro,cidade,estado,cep,telefone1,telefone2,telefone3,interlocutor,email,site) values( '");
            query.Append(razaoSocial);
            query.Append("','");
            query.Append(tipoLogradouro);
            query.Append("','");
            query.Append(logradouro);
            query.Append("','");
            query.Append(numero);
            query.Append("','");
            query.Append(bairro);
            query.Append("','");
            query.Append(cidade);
            query.Append("','");
            query.Append(estado);
            query.Append("','");
            query.Append(cep);
            query.Append("','");
            query.Append(telefone1);
            query.Append("','");
            query.Append(telefone2);
            query.Append("','");
            query.Append(telefone3);
            query.Append("','");
            query.Append(interlocutor);
            query.Append("','");
            query.Append(email);
            query.Append("','");
            query.Append(site);
            query.Append("');");


            bool retorno = con.Insert(query.ToString());
            
            query.Remove(0, query.Length);
            
            if (retorno)
	        {
                return true;
	        }
            else
        	{
                return false;
        	}

        }


        public DataTable _EnderecoCompleto(string consulta)
        {
            DataTable dt = new DataTable();
            Conexao c = new Conexao();

            query.Append("SELECT LOG_LOGRADOURO.LOG_NU AS LOG_NU, LOG_LOGRADOURO.UFE_SG AS UFE_SG, LOG_LOGRADOURO.LOG_NO AS LOG_NO, LOG_LOGRADOURO.CEP AS CEP, LOG_LOGRADOURO.TLO_TX AS TLO_TX, LOG_LOCALIDADE.LOC_NO AS LOC_NO, LOG_BAIRRO.BAI_NO AS BAI_NO ");
            query.Append("FROM (LOG_LOCALIDADE LEFT JOIN (LOG_BAIRRO LEFT JOIN LOG_FAIXA_BAIRRO ON LOG_BAIRRO.BAI_NU = LOG_FAIXA_BAIRRO.BAI_NU) ON LOG_LOCALIDADE.LOC_NU = LOG_BAIRRO.LOC_NU) INNER JOIN LOG_LOGRADOURO ON LOG_LOCALIDADE.LOC_NU = LOG_LOGRADOURO.LOC_NU ");
            query.Append("WHERE LOG_LOGRADOURO.CEP Between [LOG_FAIXA_BAIRRO].[FCB_CEP_INI] And [LOG_FAIXA_BAIRRO].[FCB_CEP_FIM] ");
            query.Append("and LOG_LOGRADOURO.CEP= ");
            query.Append("'");
            query.Append(consulta);
            query.Append("'");
            query.Append("; ");

            //c._AbrirConexaoAccess();

            retornoAccess = c._ConsultaAccess(query.ToString());
            dt.Load(retornoAccess);
            //c._FecharConexaoAccess();
            query.Remove(0, query.Length);
            return dt;
        }


    }
}
